#获取redis连接
from django_redis import get_redis_connection 
def get_redis_conn():
    conn = get_redis_connection()
    return conn

#发送短信
from ronglian_sms_sdk import SmsSDK
 
accId = '8a216da878005a800178a251439d39da'
accToken = 'dc4fd2e2a23e45a68474dbc6d1233eda'
appId = '8a216da878005a800178a251449839e1'
import json
def send_message(mobile,message,time):
    sdk = SmsSDK(accId, accToken, appId)
    tid = '1'
    # mobile = '手机号1,手机号2'
    datas = (message, time)
    resp = sdk.sendMessage(tid, mobile, datas)
    res = json.loads(resp)
    if res['statusCode'] == '000000':
        return True
    return False
    
#对jwt返回的数据重写
def jwt_response_payload_handler(token, user=None, request=None, role=None):
    """
    自定义jwt认证成功返回数据
    :token  返回的jwt
    :user   当前登录的用户信息[对象]
    :request 当前本次客户端提交过来的数据
    :role 角色
    """
    if user.first_name:
        name = user.first_name
    else:
        name = user.username
    return {
        'authenticated': 'true',
        'id': user.id,
        "role": role,
        'name': name,
        'username': user.username,
        'email': user.email,
        'token': token,
    }

#支付宝配制
#导入支付基类
from .pay import AliPay

#初始化阿里支付对象
def get_ali_object():
    # 沙箱环境地址：https://openhome.alipay.com/platform/appDaily.htm?tab=info
    app_id = "2016093000632803"  #  APPID （沙箱应用）

    # 支付完成后，支付偷偷向这里地址发送一个post请求，识别公网IP,如果是 192.168.20.13局域网IP ,支付宝找不到，def page2() 接收不到这个请求
    notify_url = "http://localhost:8000/users/notify/"

    # 支付完成后，跳转的地址。
    return_url = "http://localhost:8000/users/notify/"

    merchant_private_key_path = "./keys/private_key.txt" # 应用私钥
    alipay_public_key_path = "./keys/public_key.txt"  # 支付宝公钥

    alipay = AliPay(
        appid=app_id,
        app_notify_url=notify_url,
        return_url=return_url,
        app_private_key_path=merchant_private_key_path,
        alipay_public_key_path=alipay_public_key_path,  # 支付宝的公钥，验证支付宝回传消息使用，不是你自己的公钥
        debug=True,  # 默认False,
    )
    return alipay